<?php
/**
 * Intro:全局函数
 * User: Jason|2018/10/31
 **/
/**格式化输出
 * @param string $str
 * @param int $die 默认不die;
 */
function P($str='',$die=0)
{
    echo '<pre>';
    print_r($str);
    echo '</pre>';
    if($die!=0)
    {
        die;
    }
}

/**获取客户端IP
 * @return string
 */
function get_client_ip()
{

    if (getenv('HTTP_X_REAL_IP')) {
        $onlineIP = getenv('HTTP_X_REAL_IP');
    } elseif (getenv("HTTP_CLIENT_IP")) {
        $onlineIP = getenv("HTTP_CLIENT_IP");
    } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
        $onlineIP = getenv("HTTP_X_FORWARDED_FOR");
    } elseif (getenv("REMOTE_ADDR")) {
        $onlineIP = getenv("REMOTE_ADDR");
    } else {
        $onlineIP = $_SERVER['REMOTE_ADDR'];
    }
    if (strpos($onlineIP, ',') !== false) {
        $t = explode(',', $onlineIP);
        $onlineIP = $t[0];
    }
    return $onlineIP;
}

/**根据ip获取地理信息
 * @param $ip
 * @return array;
 */
function ip_to_address($ip)
{
    //淘宝免费接口
    $url  = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
    $jsondata = curl_get($url);
    $arrdata=json_decode($jsondata,true);
    //返回0时调用成功
    if ($arrdata['code']!=0)
    {
        $data['code']=$arrdata['code'];
        $data['msg']='接口请求失败:ip_to_address';
    }
    else
    {
        $data['code'] = $arrdata['code'];
        $reqdata      = $arrdata['data'];
        $data['msg']  = $reqdata['country'] . $reqdata['region'] . $reqdata['city'] . $reqdata['isp'];
    }
    return $data['msg'];
}
/**curl摸模拟GET请求
 * @param string $url
 * @return bool|mixed
 */
function curl_get($url='')
{
    if (empty($url))
    {
        return false;
    }
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
    $tmpInfo = curl_exec($curl);     //返回api的json对象
    curl_close($curl);
    return $tmpInfo;
}

/**curl摸模拟POST请求
 * @param $url
 * @param array $data
 * @return bool|mixed
 */
function curl_post($url,$data=array())
{
    if (empty($url) || empty($data))
    {
        return false;
    }
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl))
    {
        echo 'Errno' . curl_error($curl);//捕抓异常
    }
    curl_close($curl);
    return $tmpInfo;
}
function check_phone($phone)
{
    $str="/^1[34578]\d{9}$/";
}